﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using Lrd.Template.Core.Infrastructure.Entity;

namespace Lrd.Template.Core.Infrastructure.Audits
{
    /// <summary>
    /// 审计信息基类
    /// </summary>
    [Description("审计信息")]
    [DisableAuditing]
    public abstract class AuditInfoBase<TAuditKey,TUserKey> : EntityBase<TAuditKey>, ICreationAudited<TUserKey>
      where TAuditKey : IEquatable<TAuditKey>
       where TUserKey: struct,IEquatable<TUserKey>
    {



        [Description("创建者用户ID")]

        public virtual TUserKey? CreatorUserId { get; set; }


        [Description("创建时间")]
        public virtual DateTime CreatedTime { get; set; }

        [Description("当前用户名")]
        public virtual string UserName { get; set; }

        [Description("当前用户昵称")]
        public virtual string NickName { get; set; }

        [Description("浏览器信息")]
        public virtual string BrowserInfo { get; set; }


        [Description("浏览器信息")]
        public virtual string ClientIpAddress { get; set; }


        [Description("系统名")]
        public virtual string SystemName { get; set; }



        [Description("UserAgent")]
        public virtual string UserAgent { get; set; }

        [Description("服务名")]
        public virtual string ServiceName { get; set; }


        [Description("执行时间")]
        public virtual int ExecutionDuration { get; set; }
    }
}
